ПРИМЕР № 3

«Компоненты выбора»

Исходный код примера:

package tsn.javase.demo03;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
public class Form1 extends javax.swing.JFrame {
    public Form1() {
        initComponents();
    }
    @SuppressWarnings("unchecked")
    // //GEN-BEGIN:initComponents
    private void initComponents() {
        buttonGroup1 = new javax.swing.ButtonGroup();
        jCheckBox3 = new javax.swing.JCheckBox();
        jCheckBox2 = new javax.swing.JCheckBox();
        jCheckBox1 = new javax.swing.JCheckBox();
        jPanel2 = new javax.swing.JPanel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jList1 = new javax.swing.JList();
        jPanel3 = new javax.swing.JPanel();
        jRadioButton1 = new javax.swing.JRadioButton();
        jRadioButton2 = new javax.swing.JRadioButton();
        jRadioButton3 = new javax.swing.JRadioButton();
        jPanel4 = new javax.swing.JPanel();
        jPanel5 = new javax.swing.JPanel();
        jComboBox2 = new javax.swing.JComboBox();
        jTextField1 = new javax.swing.JTextField();
        jScrollBar1 = new javax.swing.JScrollBar();
        jLabel2 = new javax.swing.JLabel();
        jPanel1 = new javax.swing.JPanel();
        jProgressBar1 = new javax.swing.JProgressBar();
        jSlider1 = new javax.swing.JSlider();
        jLabel3 = new javax.swing.JLabel();
        jLabel1 = new javax.swing.JLabel();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTextArea1 = new javax.swing.JTextArea();
        jButton1 = new javax.swing.JButton();
        jButton2 = new javax.swing.JButton();
        jButton3 = new javax.swing.JButton();
        jButton4 = new javax.swing.JButton();
        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Компоненты выбора");
        setResizable(false);
        getContentPane().setLayout(null);
        jCheckBox3.setText("Сотовый телефон");
        jCheckBox3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox1ActionPerformed(evt);
            }
        });
        getContentPane().add(jCheckBox3);
        jCheckBox3.setBounds(200, 70, 120, 23);
        jCheckBox2.setText("Ноутбук");
        jCheckBox2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox1ActionPerformed(evt);
            }
        });
        getContentPane().add(jCheckBox2);
        jCheckBox2.setBounds(200, 50, 69, 23);
        jCheckBox1.setText("Планшет");
        jCheckBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox1ActionPerformed(evt);
            }
        });
        getContentPane().add(jCheckBox1);
        jCheckBox1.setBounds(200, 30, 97, 20);
        jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "jList"));
        jPanel2.setLayout(null);
        jList1.setModel(new javax.swing.AbstractListModel() {
            String[] strings = { "Java", "Delphi", "C++", "C#", "Assembler" };
            public int getSize() { return strings.length; }
            public Object getElementAt(int i) { return strings[i]; }
        });
        jList1.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
        jList1.setSelectedIndex(0);
        jList1.addListSelectionListener(new javax.swing.event.ListSelectionListener() {
            public void valueChanged(javax.swing.event.ListSelectionEvent evt) {
                jList1_valueChanged(evt);
            }
        });
        jScrollPane1.setViewportView(jList1);
        jPanel2.add(jScrollPane1);
        jScrollPane1.setBounds(10, 20, 131, 100);
        getContentPane().add(jPanel2);
        jPanel2.setBounds(20, 70, 150, 130);
        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("jRadioButton + ButtonGroup"));
        jPanel3.setLayout(null);
        buttonGroup1.add(jRadioButton1);
        jRadioButton1.setSelected(true);
        jRadioButton1.setText("Pascal");
        jRadioButton1.setActionCommand("1");
        jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton1_actionPerformed(evt);
            }
        });
        jPanel3.add(jRadioButton1);
        jRadioButton1.setBounds(10, 20, 110, 23);
        buttonGroup1.add(jRadioButton2);
        jRadioButton2.setText("Basic");
        jRadioButton2.setActionCommand("2");
        jRadioButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton1_actionPerformed(evt);
            }
        });
        jPanel3.add(jRadioButton2);
        jRadioButton2.setBounds(10, 40, 100, 23);
        buttonGroup1.add(jRadioButton3);
        jRadioButton3.setText("Fortran");
        jRadioButton3.setActionCommand("3");
        jRadioButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jRadioButton1_actionPerformed(evt);
            }
        });
        jPanel3.add(jRadioButton3);
        jRadioButton3.setBounds(10, 60, 100, 23);
        getContentPane().add(jPanel3);
        jPanel3.setBounds(190, 110, 180, 90);
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createBevelBorder(javax.swing.border.BevelBorder.RAISED), "jCheckBox"));
        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 168, Short.MAX_VALUE)
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 68, Short.MAX_VALUE)
        );
        getContentPane().add(jPanel4);
        jPanel4.setBounds(180, 10, 180, 90);
jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder(javax.swing.BorderFactory.createTitledBorder("jComboBox"), "jComboBox"));
        jPanel5.setLayout(null);
        jComboBox2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "ИнЕУ", "ПГУ", "МГУ" }));
        jComboBox2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBox2ActionPerformed(evt);
            }
        });
        jPanel5.add(jComboBox2);
        jComboBox2.setBounds(10, 20, 120, 20);
        getContentPane().add(jPanel5);
        jPanel5.setBounds(20, 10, 140, 50);
        jTextField1.setEditable(false);
        jTextField1.setText("<Выберите значение>");
        getContentPane().add(jTextField1);
        jTextField1.setBounds(30, 210, 150, 20);
        jScrollBar1.setOrientation(javax.swing.JScrollBar.HORIZONTAL);
        jScrollBar1.setValue(50);
        jScrollBar1.setBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED));
        jScrollBar1.addAdjustmentListener(new java.awt.event.AdjustmentListener() {
            public void adjustmentValueChanged(java.awt.event.AdjustmentEvent evt) {
                jScrollBar1_adjustmentValueChanged(evt);
            }
        });
        getContentPane().add(jScrollBar1);
        jScrollBar1.setBounds(40, 330, 300, 20);
        jLabel2.setText("jScroolBar");
        getContentPane().add(jLabel2);
        jLabel2.setBounds(360, 330, 60, 14);
        jPanel1.setBorder(javax.swing.BorderFactory.createCompoundBorder(new javax.swing.border.SoftBevelBorder(javax.swing.border.BevelBorder.RAISED), javax.swing.BorderFactory.createEtchedBorder()));
        jPanel1.setLayout(null);
        jProgressBar1.setValue(50);
        jProgressBar1.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));
        jPanel1.add(jProgressBar1);
        jProgressBar1.setBounds(10, 110, 310, 21);
        jSlider1.setMajorTickSpacing(10);
        jSlider1.setMinorTickSpacing(5);
        jSlider1.setPaintLabels(true);
        jSlider1.setPaintTicks(true);
        jSlider1.setBorder(javax.swing.BorderFactory.createEtchedBorder());
        jSlider1.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jSlider1stateChanged(evt);
            }
        });
        jPanel1.add(jSlider1);
        jSlider1.setBounds(10, 10, 320, 60);
        jLabel3.setText("jProgressBar");
        jPanel1.add(jLabel3);
        jLabel3.setBounds(330, 110, 80, 14);
        jLabel1.setText("jSlider");
        jPanel1.add(jLabel1);
        jLabel1.setBounds(350, 30, 29, 14);
        getContentPane().add(jPanel1);
        jPanel1.setBounds(30, 250, 420, 150);
        jTextArea1.setColumns(20);
        jTextArea1.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jTextArea1.setRows(5);
        jTextArea1.setText("Привет\nВсем\nЭто\nпрограмма\nна Java");
        jScrollPane2.setViewportView(jTextArea1);
        getContentPane().add(jScrollPane2);
        jScrollPane2.setBounds(390, 10, 160, 120);
        jButton1.setText("Выбранная строка");
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton1);
        jButton1.setBounds(410, 140, 130, 23);
        jButton2.setText("Свои строки");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton2);
        jButton2.setBounds(410, 170, 130, 23);
        jButton3.setText("Проход по строкам");
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton3);
        jButton3.setBounds(410, 200, 130, 23);
        jButton4.setText("Выход");
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });
        getContentPane().add(jButton4);
        jButton4.setBounds(490, 350, 65, 23);
        setSize(new java.awt.Dimension(593, 434));
        setLocationRelativeTo(null);
    }// //GEN-END:initComponents
    private void jComboBox2ActionPerformed(java.awt.event.ActionEvent evt) {
	//GEN-FIRST:event_jComboBox2ActionPerformed
        // Обработка выбора из списка jComboBox
        jTextField1.setText(jComboBox2.getSelectedItem().toString());
    }//GEN-LAST:event_jComboBox2ActionPerformed
    private void jList1_valueChanged(javax.swing.event.ListSelectionEvent evt) {
	//GEN-FIRST:event_jList1_valueChanged
        // Работа с jList
        jTextField1.setText(jList1.getSelectedValue().toString());
    }//GEN-LAST:event_jList1_valueChanged
    private void jCheckBox1ActionPerformed(java.awt.event.ActionEvent evt) {
	//GEN-FIRST:event_jCheckBox1ActionPerformed
        // Работа с jCheckBox
        if (jCheckBox1.isSelected()) {
            jTextField1.setText(jCheckBox1.getText());
        }
        if (jCheckBox2.isSelected()) {
            jTextField1.setText(jCheckBox2.getText());
        }
        if (jCheckBox3.isSelected()) {
            jTextField1.setText(jCheckBox3.getText());
        }
    }//GEN-LAST:event_jCheckBox1ActionPerformed
    private void jRadioButton1_actionPerformed(java.awt.event.ActionEvent evt) {
	//GEN-FIRST:event_jRadioButton1_actionPerformed
        // Выбор значения из группы jRadioButton
        JRadioButton button = (JRadioButton) evt.getSource();
        jTextField1.setText(button.getActionCommand());
        jTextField1.setText(button.getText());
    }//GEN-LAST:event_jRadioButton1_actionPerformed
    private void jSlider1stateChanged(javax.swing.event.ChangeEvent evt) {
	//GEN-FIRST:event_jSlider1stateChanged
        // Изменение значения слайдера
        jProgressBar1.setValue(jSlider1.getValue());
    }//GEN-LAST:event_jSlider1stateChanged
    private void jScrollBar1_adjustmentValueChanged(java.awt.event.AdjustmentEvent evt) {
	//GEN-FIRST:event_jScrollBar1_adjustmentValueChanged
        // Изменение значения jProgressBar
        jProgressBar1.setValue(jScrollBar1.getValue());
    }//GEN-LAST:event_jScrollBar1_adjustmentValueChanged
    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
	//GEN-FIRST:event_jButton1ActionPerformed
        // Выбор строки из jTextArea
        try {
            //int line = jTextArea1.getLineCount() - 1; // Количество строк
            int line = jTextArea1.getLineOfOffset(jTextArea1.getCaret().getDot()); // Номер выбранной строки
            int start = jTextArea1.getLineStartOffset(line);
            int end = jTextArea1.getLineEndOffset(line);
            String s = jTextArea1.getText(start, end - start); // Узнаем текст выбранной строки
            jTextField1.setText(s);
            //jTextArea1.replaceRange("", start, end);
        } catch (Exception f) {
        }
    }//GEN-LAST:event_jButton1ActionPerformed
    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
	//GEN-FIRST:event_jButton2ActionPerformed
        // Свои строки в jTextArea
        jTextArea1.setText(""); // Удалить все значения
        jTextArea1.append("Строка 1\n"); // Добавить значение и перейти на новую строку
        jTextArea1.append("Строка 2\n"); // Добавить значение и перейти на новую строку
        jTextArea1.append("Строка 3"); // Добавить значение
    }//GEN-LAST:event_jButton2ActionPerformed
    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
	//GEN-FIRST:event_jButton3ActionPerformed
        // Проход по строкам в jTextArea
        try {
            int line_count = jTextArea1.getLineCount() - 1; // Количество строк
            for (int i = 0; i <= line_count; i++) { // Цикл по всем строкам
                int start = jTextArea1.getLineStartOffset(i); // Определим начало строки
                int end = jTextArea1.getLineEndOffset(i); // Определим конец строки
                String s = jTextArea1.getText(start, end - start); // Узнаем текст строки
                jTextArea1.replaceRange(Integer.toString(i + 1) + ") " + s, start, end); // Изменим строку
            }
        } catch (Exception f) {
        }
    }//GEN-LAST:event_jButton3ActionPerformed
    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {
	//GEN-FIRST:event_jButton4ActionPerformed
        // Выход
        JOptionPane.showMessageDialog(null, "До свидания!", "Инфо", JOptionPane.INFORMATION_MESSAGE);
        System.exit(0);
    }//GEN-LAST:event_jButton4ActionPerformed
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Windows".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Form1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Form1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Form1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Form1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //
        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new Form1().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton4;
    private javax.swing.JCheckBox jCheckBox1;
    private javax.swing.JCheckBox jCheckBox2;
    private javax.swing.JCheckBox jCheckBox3;
    private javax.swing.JComboBox jComboBox2;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JList jList1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JProgressBar jProgressBar1;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JRadioButton jRadioButton2;
    private javax.swing.JRadioButton jRadioButton3;
    private javax.swing.JScrollBar jScrollBar1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JSlider jSlider1;
    private javax.swing.JTextArea jTextArea1;
    private javax.swing.JTextField jTextField1;
    // End of variables declaration//GEN-END:variables
}